import { getShortcutMenu } from "@/api/menu/index";

/**
 * 菜单查询参数类型
 */
export interface MenuQuery extends PageQuery {
  title?: string;
  type?: number;
  sort?: string;
  is_hid?: number;
}

/**
 * 菜单表单对象类型
 */
export interface MenusForm {
  /**
   * 菜单ID
   */
  id?: string;
  /**
   * 父菜单ID
   */
  parent_id?: number;
  /**
   * 菜单名称
   */
  permission_name?: string;
  module?: string;
  /**
   * 菜单是否可见(1:是;0:否;)
   */
  hidden: number;

  icon?: string;
  /**
   * 排序
   */
  sort: number;
  /**
   * 组件路径
   */
  component?: string;
  /**
   * 路由路径
   */
  route?: string;
  /**
   * 跳转路由路径
   */
  redirect?: string;
  /**
   * 菜单类型
   */
  type?: number;
  /**
   * 权限标识
   */
  permission_mark?: string;
  /**
   * 【菜单】是否开启页面缓存
   */
  keepalive?: number;
}

/**
 * 菜单视图对象类型
 */
export interface MenuVO {
  /**
   * 子菜单
   */
  children?: MenuVO[];
  /**
   * 组件路径
   */
  component?: string;
  /**
   * ICON
   */
  icon?: string;
  /**
   * 菜单ID
   */
  id?: number;
  /**
   * 父菜单ID
   */
  parent_id?: number;
  /**
   * 按钮权限标识
   */
  permission_mark?: string;
  /**
   * 跳转路径
   */
  redirect?: string;
  /**
   * 路由名称
   */
  permission_name?: string;
  /**
   * 路由相对路径
   */
  route?: string;
  /**
   * 菜单排序(数字越小排名越靠前)
   */
  sort?: number;
  /**
   * 菜单类型
   */
  type?: number;
  /**
   * 菜单是否可见(1:显示;0:隐藏)
   */
  hidden?: number;

  keepalive?: number;
  class_name?: string;
}

export interface ShortcutMenu {
  left_nav?: [];
  right_nav?: Shortcut[];
}

export interface Shortcut {
  key?: number;
  label?: string;
}
